package classes.collection;

import org.junit.Test;

import java.util.*;

/**
 * Collections是Map、List、Set的工具类
 *
 * @author DuJiabao
 * @create 2021-01-13 22:54
 */
public class CollectionsTest {
  @Test
  public void test() {
    List<Integer> integers = Arrays.asList(10, 30, -10, -39, 54, 43, 10, 20);
    System.out.println(integers);
//        reverse(List)：反转 List 中元素的顺序
    Collections.reverse(integers);
    System.out.println(integers);
//        shuffle(List)：对 List 集合元素进行随机排序
    Collections.shuffle(integers);
    System.out.println(integers);
//      sort(List)：根据元素的自然顺序对指定 List 集合元素按升序排序
    Collections.sort(integers);
    System.out.println(integers);
//      sort(List，Comparator)：根据指定的 Comparator 产生的顺序对 List 集合元素进行排序
//      swap(List，int， int)：将指定 list 集合中的 i 处元素和 j 处元素进行交换
    Collections.swap(integers, 1, 2);
    System.out.println(integers);
//        Object max(Collection)：根据元素的自然顺序，返回给定集合中的最大元素
    Integer max = Collections.max(integers);
    System.out.println(max);
//        Object max(Collection，Comparator)：根据 Comparator 指定的顺序，返回 给定集合中的最大元素
//          Object min(Collection)
    Integer min = Collections.min(integers);
    System.out.println(min);
//          Object min(Collection，Comparator)
//          int frequency(Collection，Object)：返回指定集合中指定元素的出现次数
    int frequency = Collections.frequency(integers, 20);
    System.out.println(frequency);
//          void copy(List dest,List src)：将src中的内容复制到dest中
    List<Object> objects = Arrays.asList(new Object[integers.size()]);
    Collections.copy(objects, integers);
    System.out.println(objects);
//          boolean replaceAll(List list，Object oldVal，Object newVal)：使用新值替换
    Collections.replaceAll(integers, 10, 11);
    System.out.println(integers);
  }

  @Test
  public void synchronizeTest() {
    List<Integer> integers = Arrays.asList(1, 2, 3, 4, 5, 6);
    integers = Collections.synchronizedList(integers);
  }

}
